function animate(obj, target, callback) {
    //清除原来的计时器，保留原来的计时器
    clearInterval(obj.timer)
    //给不同的元素指定了不同的定时器
    obj.timer = setInterval(function () {
        if (obj.offsetLeft == target) {
            clearInterval(obj.timer)
            //当定时器结束，调用回调函数
            /*             if (callback) {
                            callback();
                        } */
            //短路运算,只有callback被传递过来,&&之前的callback才为true
            //&&之前为ture,就会执行之后的代码
            callback && callback()
        }
        //让盒子每次移动的距离慢慢变小，速度就会慢慢落下来。
        //每次移动的步长，并把步长值往上取整
        var step = (target - obj.offsetLeft) / 10
        //判断是往后移动还是往前移动
        step = step > 0 ? Math.ceil(step) : Math.floor(step)
        obj.style.left = obj.offsetLeft + step + 'px'
    }, 15)
}
